﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Script.Services;
using System.Web.UI.WebControls;
using EntitiesLayer.Entities;
using BusinnesLayer.LogicBusiness;
using System.Web.Services;
using System.Web.Script.Services;

namespace ClinicaSanPablo 
{
    public partial class SeguimientoQuejaReclamoMuestra : System.Web.UI.Page
    {
        private static Combosbl ptb = new Combosbl();
        private static QuejaReclamobl p = new QuejaReclamobl();
        string CodReclamo;
        string IdQRRespuesta;
        string fileName;
        string localPath;
        string savePath;
        private static System.Web.Script.Serialization.JavaScriptSerializer jsonSerializer = new System.Web.Script.Serialization.JavaScriptSerializer();
        
        [WebMethod]
        [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
        public static string ComboArea()
        {
            List<Combos> getArea = ptb.GetAllComboArea();
            return jsonSerializer.Serialize(getArea);
        }

        [WebMethod]
        [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
        public static string ComboSituacionResultado()
        {
            List<Combos> getSiRe = ptb.GetAllComboSituacionResultado();
            return jsonSerializer.Serialize(getSiRe);
        }

        [WebMethod]
        [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
        public static string ComboMotivoGeneral()
        {
            List<Combos> getMotivoGeneral = ptb.GetAllComboMotivoGeneral();
            return jsonSerializer.Serialize(getMotivoGeneral);
        }

        [WebMethod]
        [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
        public static string ComboMotivoEspecifico(string motivoGeneral)
        {
            List<Combos> getMotivoEspecifico = ptb.GetAllComboMotivoEspecifico(motivoGeneral);
            return jsonSerializer.Serialize(getMotivoEspecifico);
        }

        [WebMethod]
        [ScriptMethod(ResponseFormat = ResponseFormat.Json)] 
        public static string DeleteIdRespuesta(string IdQrRespuesta)
        {
            try
            {
                SeguimientoqrRespuestabl del = new SeguimientoqrRespuestabl();
                SeguimientoqrRespuesta objSR = new SeguimientoqrRespuesta();
                 objSR.ISQR_ID_RESPUESTA = Convert.ToInt32(IdQrRespuesta);
                 del.DeleteQRRespuesta(objSR);
                 var data = new{resultado = true};
                 return jsonSerializer.Serialize(data);
            }
            catch (Exception ex)
            {
                var data = new {resultado = false};
                return jsonSerializer.Serialize(data);
            }
        }
         
        [WebMethod]
        [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
        public static string UpdateSegAccionQr(string IdQrRespuesta, string AccionesQr, string ResultadoRr, string CodMotGen, string CodMotEsp, string UsuarioActQr)
        {
            try
            {
                        SeguimientoqrRespuestabl objUpdateSegQr = new SeguimientoqrRespuestabl();
                        SeguimientoqrRespuesta objSR = new SeguimientoqrRespuesta();
                        objSR.ISQR_ID_RESPUESTA = Convert.ToInt32(IdQrRespuesta);
                        objSR.VSQR_DESC_ACCIONES = AccionesQr;
                        objSR.VSQR_DESC_RESULTADO = ResultadoRr;
                        objSR.VGEN_COD_MOT_GEN = CodMotGen;
                        objSR.VESP_COD_MOT_ESP = CodMotEsp;
                        objSR.VREC_USUARIO_ACTUALIZACION = UsuarioActQr;        
                        objSR.DREC_FECHA_ACTUALIZACION = Convert.ToDateTime(DateTime.Now.ToShortDateString()); ;
                        objUpdateSegQr.UpdateSegQr(objSR);
                        var data = new{resultado = true};
                        return jsonSerializer.Serialize(data);
            }
            catch (Exception ex)
            {
                var data = new
                {
                    resultado = false
                };
                return jsonSerializer.Serialize(data);
            }
        }

        [WebMethod]
        [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
        public static string RegistraSeguimientoQyR(string CodReclamo, string CaractRespuesta, string SustentoRespuesta)
        {
            try
            {
                SeguimientoqrDerivacionbl registroDerivar = new SeguimientoqrDerivacionbl();                
                    QuejaReclamo insertDerivar = new QuejaReclamo();
                    insertDerivar.VREC_COD_REC = CodReclamo;
                    insertDerivar.VREC_COD_CARACTERISTICA_RESP = CaractRespuesta;
                    insertDerivar.VREC_SUSTENTO_RESPUESTA = SustentoRespuesta;                 
                    registroDerivar.insertSeguimientoQrDerivar(insertDerivar);

                var data = new
                {
                    resultado = true
                };
                return jsonSerializer.Serialize(data);
            }
            catch (Exception ex)
            {
                var data = new
                {
                    resultado = false
                };
                return jsonSerializer.Serialize(data);
            }

        }


        [WebMethod]
        [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
        public static string RegistraDerivar(string CodReclamo, string SituacionResultado, string AreaADerivar, string Observacion, string UsuarioRespon, string MailGerente)
        {
            try
            {

                Correobl enviacorreo = new Correobl();
                Correo bp = enviacorreo.ConsultaTipoCorreo("7");
                System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage();
                // Dirección de destino

                if (!string.IsNullOrEmpty(MailGerente))
                    message.To.Add(MailGerente);
                // Asunto 
                message.Subject = bp.TituloCorreo;
                // Mensaje 
                message.Body = bp.DetalleCorreo + " Su código de Queja y Reclamo es: " + CodReclamo + "http://localhost:4640/SeguimientoQuejaReclamoMuestra.aspx";

                System.Net.Mail.SmtpClient smpt = new System.Net.Mail.SmtpClient();
                smpt.Send(message);

                SeguimientoqrDerivacionbl registroDerivar = new SeguimientoqrDerivacionbl();
                QuejaReclamo insertDerivar = new QuejaReclamo();
                insertDerivar.VREC_COD_REC = CodReclamo;
                insertDerivar.Vsire_Cod_Resultado = SituacionResultado;                    
                insertDerivar.VARE_COD_AREA = AreaADerivar;
                insertDerivar.Vsqrd_Observacion = Observacion;
                insertDerivar.Dsqrd_Fecha_Derivacion = DateTime.Now.ToShortDateString();
                insertDerivar.Vsqrd_Usuario_Respon = UsuarioRespon;
                registroDerivar.InsertQrDerivar(insertDerivar);
                var data = new {resultado = true};
                return jsonSerializer.Serialize(data);
            }
            catch (Exception ex)
            {
                var data = new { resultado = false};
                return jsonSerializer.Serialize(data);
            }

        }


        private QuejaReclamobl pBl = new QuejaReclamobl();
        protected void Page_Load(object sender, EventArgs e)
        {
            CodReclamo = Request.QueryString["codReclamo"];
            try
            {
                    QuejaReclamo p = pBl.MostrarQuejaReclamo(CodReclamo);
                    LblPaciente.Text = p.Nombre_Paciente;
                    LblDni.Text = p.IPAC_NRO_DOCUMENTO;
                    LblHhcc.Text = p.VPAC_HHCC;
                    LblDirigidoa.Text = p.Dirigido_A;
                    LblCodRecla.Value = CodReclamo;
                    LblFecha.Text = Convert.ToString(DateTime.Now.ToShortDateString());
                    LblEstado.Value = p.Vest_Codestado;                    
            }
            catch (Exception ex)
            {
               
            }

        }

        protected void AnadirRespuesta_Click(object sender, EventArgs e)
        {
            if (uploadFile1.HasFile)
            {
                fileName = uploadFile1.FileName;
                savePath = Server.MapPath("~/archivos/") + fileName;
                localPath = "/archivos/" + fileName;
                uploadFile1.SaveAs(savePath);
            }
            try
            {
                QuejaReclamo SegQRRespuesta = new QuejaReclamo();
                Archivo objArchivo = new Archivo();
                SeguimientoqrRespuestabl objSR = new SeguimientoqrRespuestabl();

                SegQRRespuesta.Vrec_Cod_Rec = CodReclamo;
                SegQRRespuesta.Dsqr_Fecha_Respuesta = LblFecha.Text;
                SegQRRespuesta.Vsqr_Desc_Acciones = TxtAcciones.Text;
                SegQRRespuesta.Vgen_Cod_Mot_Gen = (string)Request.Form["ctl00$master$CmbMotivoGeneral"]; ;
                SegQRRespuesta.Vesp_Cod_Mot_Esp = (string)Request.Form["ctl00$master$CmbMotivoEspecifico"]; ;
                SegQRRespuesta.Vsqr_Desc_Resultado = TxtResultado.Text;
                SegQRRespuesta.VREC_USUARIO_CREACION = Session["id_usuario"].ToString();
                SegQRRespuesta.DREC_FECHA_CREACION = DateTime.Now;
                SegQRRespuesta.Vest_Codestado = "EST003";
                objArchivo.VARC_NOM_ARCHIVO = (fileName != null) ? fileName : "";
                objArchivo.VARC_RUTA_ARCHIVO = (localPath != null) ? localPath : "";
                objSR.InsertQRRespuesta(SegQRRespuesta, objArchivo);
                TxtAcciones.Text = "";
                TxtResultado.Text = "";
                CmbMotivoGeneral.SelectedValue = "0";
                CmbMotivoEspecifico.SelectedValue = "0";
            }
            catch (Exception ex)
            {

            }
        }

 
    }
}